{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Advanced VQE Options\n",
    "\n",
    "In the first algorithms tutorial, you learned how to set up a basic [VQE](https://qiskit.org/documentation/stubs/qiskit.algorithms.minimum_eigensolvers.VQE.html) algorithm. Now, you will see how to provide more advanced configuration parameters to explore the full range of capabilities of Qiskit's variational algorithms: [VQE](https://qiskit.org/documentation/stubs/qiskit.algorithms.minimum_eigensolvers.VQE.html), [QAOA](https://qiskit.org/documentation/stubs/qiskit.algorithms.minimum_eigensolvers.QAOA.html) and [VQD](https://qiskit.org/documentation/stubs/qiskit.algorithms.eigensolvers.VQD.html) among others. In particular, this tutorial will cover how to set up a `callback` to monitor convergence and the use of custom `initial point`s and `gradient`s."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Callback"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "Callback methods can be used to monitor optimization progress as the algorithm runs and converges to the minimum. The callback is invoked for each functional evaluation by the optimizer and provides the current optimizer value, evaluation count, current optimizer parameters etc. Note that, depending on the specific optimizer this may not be each iteration (step) of the optimizer, so for example if the optimizer is calling the cost function to compute a finite difference based gradient this will be visible via the callback.\n",
    "\n",
    "This section demonstrates how to leverage callbacks in `VQE` to plot the convergence path to the ground state energy with a selected set of optimizers."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, you need a qubit operator for VQE. For this example, you can use the same operator as used in the algorithms introduction, which was originally computed by [Qiskit Nature](https://qiskit.org/ecosystem/nature/) for an H2 molecule."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from qiskit.quantum_info import SparsePauliOp\n",
    "\n",
    "H2_op = SparsePauliOp.from_list(\n",
    "    [\n",
    "        (\"II\", -1.052373245772859),\n",
    "        (\"IZ\", 0.39793742484318045),\n",
    "        (\"ZI\", -0.39793742484318045),\n",
    "        (\"ZZ\", -0.01128010425623538),\n",
    "        (\"XX\", 0.18093119978423156),\n",
    "    ]\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The next step is to instantiate the `Estimator` of choice for the evaluation of expectation values within `VQE`. For simplicity, you can select the [qiskit.primitives.Estimator](https://qiskit.org/documentation/stubs/qiskit.primitives.Estimator.html#qiskit.primitives.Estimator) shipped with the default [Qiskit Terra](https://qiskit.org/documentation/apidoc/terra.html) installation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "from qiskit.primitives import Estimator\n",
    "\n",
    "estimator = Estimator()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You are now ready to compare a set of optimizers through the `VQE` callback. The minimum energy of the H2 Hamiltonian can be found quite easily, so the maximum number of iterations (`maxiter`) does not have to be very large. You can once again use `TwoLocal` as the selected trial wavefunction (i.e. ansatz)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Optimization complete      \n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "from qiskit.algorithms.minimum_eigensolvers import VQE\n",
    "from qiskit.algorithms.optimizers import COBYLA, L_BFGS_B, SLSQP\n",
    "from qiskit.circuit.library import TwoLocal\n",
    "from qiskit.utils import algorithm_globals\n",
    "\n",
    "# we will iterate over these different optimizers\n",
    "optimizers = [COBYLA(maxiter=80), L_BFGS_B(maxiter=60), SLSQP(maxiter=60)]\n",
    "converge_counts = np.empty([len(optimizers)], dtype=object)\n",
    "converge_vals = np.empty([len(optimizers)], dtype=object)\n",
    "\n",
    "for i, optimizer in enumerate(optimizers):\n",
    "    print(\"\\rOptimizer: {}        \".format(type(optimizer).__name__), end=\"\")\n",
    "    algorithm_globals.random_seed = 50\n",
    "    ansatz = TwoLocal(rotation_blocks=\"ry\", entanglement_blocks=\"cz\")\n",
    "\n",
    "    counts = []\n",
    "    values = []\n",
    "\n",
    "    def store_intermediate_result(eval_count, parameters, mean, std):\n",
    "        counts.append(eval_count)\n",
    "        values.append(mean)\n",
    "\n",
    "    vqe = VQE(estimator, ansatz, optimizer, callback=store_intermediate_result)\n",
    "    result = vqe.compute_minimum_eigenvalue(operator=H2_op)\n",
    "    converge_counts[i] = np.asarray(counts)\n",
    "    converge_vals[i] = np.asarray(values)\n",
    "\n",
    "print(\"\\rOptimization complete      \");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now, from the callback data you stored, you can plot the energy value at each objective function call each optimizer makes. An optimizer using a finite difference method for computing gradient has that characteristic step-like plot where for a number of evaluations it is computing the value for close by points to establish a gradient (the close by points having very similar values whose difference cannot be seen on the scale of the graph here)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": false,
    "tags": [
     "nbsphinx-thumbnail"
    ]
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtkAAAHwCAYAAABzBnP9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABuYklEQVR4nO3deXhkZZn38e9ddWpN0vu+Q7NDQwMNAqJsLYMosiiDvI6i7ygjyjiOjo7bjMy4jMvrOI6jjow6biMqjCwCiiIgAoo00CzNIjRbpxd6X5JUpbbn/eOcSirpLFVJVSo5+X2uK1cnVadOPVUdwi933+d+zDmHiIiIiIjUT6TZCxARERERCRuFbBERERGROlPIFhERERGpM4VsEREREZE6U8gWEREREakzhWwRERERkTpTyBYRmeTM7JVm9oyZdZjZBc1eT3/Bug5s9jpGyszWmdnpI3zsL8zssvquSETGgmlOtogAmNkLwFygWHHzd51zVzZnRTJWzOw3wE3Oua80ey0TnZl9F2h3zn2i2WsRkebymr0AERlXznPO3d7IJzAzzzlXaORzjBcT6LUuBdaN5IGNfI0T6P2bMMzM8AtspWavRSTs1C4iIsMys7eb2T1m9v/MbJeZPW9mr624f6qZfdvMNpvZRjP7tJlFKx57r5l92cx2AFeZ2Uwz+7mZ7TWzB4Lj7wmO/5qZfanf899kZn87yNqONLNfm9lOM3vZzD4W3J4ws38zs03Bx7+ZWSK473QzazezD5rZ1mDd7wjue4WZbSmvP7jtQjN7NPg8YmYfMbP1ZrbDzH5qZjOC+5aZmTOzvzSzl4A7zCxqZl8ys+3B+3ZlcIxX5Xs31Ps+w8z+O3h9u8zshor7Xm9ma81st5ndZ2ZHD/L+rQcOBH4etGUkzGxB8J7vNLNnzexdFcdfZWbXmdkPzWwv8PZ+5xvu/TvRzH4frGuzmf2HmcUrjnVm9l4zewZ4puK2gyrer++b2TYze9HMPmFmkYq1/bDiXOW/j/J7/XYze87M9gXv5VsGeU+q+d75WPB3+kL5PGZ2OfAW4MPBe/nz4PYXzGx1xRqvDd6/fWb2mJkdYmYfDb4XN5jZ2RVrucvM3hl8/khw3vKHs6ANxcxOCv6edwfHnd7vHJ8xs3uBLuDAat8LERk5hWwRqdYrgKeBWcAXgG+bmQX3fRcoAAcBxwJnA+/s99jn8NtRPgN8DegE5gGXBR9l3wMurQhOs4DVwI/6L8jM2oDbgV8CC4Ln/01w98eBk4CVwDHAiUDlP+HPA6YCC4G/BL5mZtOdc/cHazuz4tj/U/H8fw1cAJwWPOeu4PVUOg04HPgz4F3Aa4N1HBc8ttJ3Gf69G+x9/wGQBo4E5gBfDt6XY4HvAH8FzAS+CdxUDoqVnHPLgZfw/xWj1TnXDfwYaA9e35uAz5pZ5ftxPnAdMA34n37nG+79KwJ/G7yek4GzgPf0W9YFwes+ov96ga/i/70diP8+vw14xwDH9WFmLcC/A691zrUBpwBrBzm8mu+dWfjfO5cBV5vZoc65q/Hfjy8E7+V5g5z/PPy/u+nAw8Bt+P8/Xgj8M/7f136cc8cE520FPoD/ffGQmS0EbgE+DcwA/g74XzObXfHwtwKXA23AthreCxEZKeecPvShD30AvAB0ALsrPt4V3Pd24NmKY9OAww8bc4FuIFVx/6XAnRWPfaniviiQBw6tuO3TwD0VXz8JvCb4/Erg1kHWfCnw8CD3rQfOrfj6z4AXgs9PBzKAV3H/VuCkivV8J/i8DT80Lq1Y21kVj5sfvB4PWBa8LwdW3H8H8FcVX68OjvGqfO8Ge9/nAyVg+gCv/RvAp/rd9jRw2hB/96uDzxfjB+G2ivv/Bb8/H+Aq4O5hvpcGff8GOPb9wPUVXzvgzH7HOPxfQqJADjii4r6/Au6qWNsPK+4r/314QAv+9/QbK9/vEX7vFICWivt/CvxD8Pl3gU8P8f5eBfy64r7z8P+7i1a8Xw6YFnx9F/DOfuc7Ff/79ZDg678HftDvmNuAyyrO8c8V91X9XuhDH/oY+Ycq2SJS6QLn3LSKj/+quG9L+RPnXFfwaSt+P28M2Bz8U/Vu/ErcnIrHbqj4fDZ+6NkwyP3gV7P/Ivj8L/CrfgNZjB+IBrIAeLHi6xeD28p2uL79vl3B6wG/6npRUPm9CHjIOVc+11Lg+orX+iR+KJ07yOtZwOCvtZr3brD3fTGw0zm3a/+XzlLgg+VzBudd3O/1D2ZBcN59Fbe9iF9lHeg1DGTQ9y9ojbg5aCnZC3wWvypcabDzz8J/v/r/vS4c+PBezrlO4BLg3fjv9y1mdtgghw/3vbMrON9g9w/n5YrPM8B251yx4mvo/V7sw8wW44f6y5xzfwpuXgpc3O/v+1T8X8TKet7TGt8LERkhhWwRGa0N+NXYWRXhfIpz7siKYyrHGG3DrwQuqrhtcb9z/hA438yOwW+7uGGI5x5stNsm/PBRtiS4bVjOuSfwg9Nr6dvqUH7O1/b7ZSTpnNtYeYqKzzcz+Gut5r0bzAZghplNG+S+z/RbY9o5d00V590UnLet4rYlwGCvbz/DvH/fAJ4CDnbOTQE+Blj/Uwxy6u34/2rQ/++1vLZO/Gp/2bx+67rNOfca/PD5FFD5S2Sl4b53pgftJwPd37CRXWaWwv9v4d+cc7+ouGsDfiW78u+7xTn3uYpj+qyrhvdCREZIIVtERsU5txn4FfAlM5ti/oWBy83stEGOLwI/w78AMh1U0N7W75h24AH8Cvb/Oucy+58JgJuB+Wb2/uBitTYze0Vw3zXAJ8xsdtDX/Y/44b1aPwL+Bng1cG3F7f8JfMbMlgIE5z9/iPP8FPgbM1sYBOK/r3idNb13lYLH/gL4uplNN7OYmb06uPu/gHebfxGimVmLmb2uX3Ae7LwbgPuAfzGzpPkXTP4ltb13MPj71wbsBTqCv/srqj1h8L3zU/z3vy34O/hAxdrWAq82syVmNhX4aPmxZjbXzM4PwnE3fovGYBM2qvne+Sczi5vZq4DXV7zGlxn8F7/R+g7wlHPuC/1u/yFwnpn9mfkX2ibNv0Bz0QDnqPW9EJERUsgWkUrlCRPlj+urfNzbgDjwBP6FgNfR95+q+7sS/+K1LfhB+hr8/9lX+h6wgsFbRQhaGl6D39e6BX8axRnB3Z8G1gCPAo8BDwW3Vesa/Avr7nDOba+4/SvATcCvzGwf8Af8i/QG81/4QfpR/IvcbsWv5JfbA2p97yq9Fb+y+xR+j+77AZxza/AvuPyP4JzP0m8KyDAuxe9n3gRcD3zS1T7acbD37+/wq9v78N+bn9R43r/Gr1g/B9yDH+a/A+Cc+3VwvkeBB/F/CSuL4AfyTcDOYG2DBfzhvne24L+vm/AvdHy3c+6p4L5vA0cEbRs31PjahvNm4MJ+/42+KvjF6Hz8fxXYhl/Z/hCD/z++lvdCREZIm9GISNOZ2eeBec65yypuezV+hW6pC9EPKvNH8P2nc27psAfLuBOMxvuhc27AKrGISJkq2SIy5szsMDM7OmhlOBG/HeH6ivtj+K0G35roAdvMUmZ2rpl5wai1T1LxWkVEJJwUskWkGdrw+7I78f95/0vAjQBmdjj+eLH5wL81Z3l1ZcA/4bcXPIw/jeQfm7oiERFpOLWLiIiIiIjUmSrZIiIiIiJ1ppAtIiIiIlJnXrMX0AizZs1yy5Yta/YyRERERCTEHnzwwe3OudkD3RfKkL1s2TLWrFnT7GWIiIiISIiZ2YuD3ad2ERERERGROlPIFhERERGpM4VsEREREZE6C2VPtoiIiMhkls/naW9vJ5vNNnspoZBMJlm0aBGxWKzqxyhki4iIiIRMe3s7bW1tLFu2DDNr9nImNOccO3bsoL29nQMOOKDqx6ldRERERCRkstksM2fOVMCuAzNj5syZNf+rgEK2iIiISAgpYNfPSN5LhWwRERERaYgtW7bw5je/meXLl3P88cdz7rnn8qc//Yl169Zx5plncuihh3LwwQfzqU99CuccAN/97neZPXs2K1eu5Mgjj+RNb3oTnZ2dnHrqqfziF7/oOfe1117LOeecA0Bra+uga3j/+9/PwoULKZVKjX2x/Shki4iIiEjdOee48MILOf3001m/fj0PPvgg//Iv/8LLL7/MG97wBj7ykY/w9NNP88gjj3Dffffx9a9/veexl1xyCWvXrmXdunXE43F++tOf8p//+Z984AMfIJvN0tHRwcc+9jG+9rWvDbmGUqnE9ddfz+LFi/ntb3/b6Jfch0K2iIiIiNTdnXfeSSwW493vfnfPbccccwx/+tOfeOUrX8nZZ58NQDqd5j/+4z/43Oc+t985CoUCnZ2dTJ8+naOOOorzzjuPz3/+8/zzP/8zb3vb21i+fPmQa7jrrrs48sgjueKKK7jmmmvq+wKHoekiIiIiIiH2Tz9fxxOb9tb1nEcsmMInzztyyGMef/xxjj/++P1uX7du3X63L1++nI6ODvbu9df5k5/8hHvuuYfNmzdzyCGHcN555wHwyU9+kuOOO454PM6aNWuGXec111zDpZdeyvnnn8/HPvYx8vl8TWP4RkOVbBEREREZV8rtIlu2bGHFihV88YtfBKClpYVLLrmEt771rSQSiSHPkcvluPXWW7nggguYMmUKr3jFK7jtttvGYvmAKtkiIiIioTZcxblRjjzySK677rr9bj/iiCO4++67+9z23HPP0draypQpU/rcbmacd955fPWrX+UjH/kIAJFIhEhk+Drxbbfdxu7du1mxYgUAXV1dpFIpXv/614/0JdVElWwRERERqbszzzyT7u5urr766p7bHn30UQ499FDuuecebr/9dgAymQzve9/7+PCHPzzgee65555he68Hcs011/Ctb32LF154gRdeeIHnn3+eX//613R1dY3sBdVIIVtERERE6s7MuP7667n99ttZvnw5Rx55JB/96EeZN28eN954I5/+9Kc59NBDWbFiBSeccAJXXnllz2N/8pOfsHLlSo4++mgefvhh/uEf/mHI5+rq6mLRokU9H5/97Gf55S9/yete97qeY1paWjj11FP5+c9/3rDXXMnKMwnDZNWqVa6aZngRERGRMHryySc5/PDDm72MUBnoPTWzB51zqwY6Xj3ZdbJj92ay+W7a4tFmL6XuotEYLa3zmr0MERERkQlDIbtO3vuTc1mXLDR7GQ3z2SVv4LwzPtPsZYiIiIhMCArZdTLfncrMfZs56cCZzV5K3X1x6728uHt9s5chIiIiMmEoZNdJV8tlPL+9k6+de1qzl1J3X/3vo+guZJu9DBEREZEJQ9NF6iQZi5LNl5q9jIZIAplid7OXISIiIjJhKGTXSdKLks0Xm72Mhkg6o7uUa/YyRERERCYMhew6ScXDG7ITZmQVskVERESqppBdJ4lYhGwhnO0iKSJkS+GdnCIiIiL119raWtVxV111FQsXLmTlypUcdthhXHHFFZRKfqZ6+9vfzgEHHMDKlStZuXIl//7v/w5AR0cHV1xxBcuXL+e4447j+OOP57/+678AKJVKvO997+Ooo47q2ejm+eefH/T5ly1bxooVK1i5ciUrVqzgxhtvHOUr9+nCxzpJelFyhRKlkiMSsWYvp64SFlXIFhERkYb527/9W/7u7/6OUqnEq1/9an77299yxhlnAPDFL36RN73pTX2Of+c738mBBx7IM888QyQSYdu2bXznO98B/N0iN23axKOPPkokEqG9vZ2WlpYhn//OO+9k1qxZPP3005x99tmcf/75o35NCtl1koz5m9B0F0qkQrYhTdI8tYuIiIhMVL/4CGx5rL7nnLcCXvu5+p4TyOVyZLNZpk+fPugx69ev549//CM/+tGPiET8pozZs2fz93//9wBs3ryZ+fPn99y3aNGiqp9/7969Qz53LdQuUifJmP9WhrEvOxnx6HbhbIURERGR5vvyl7/MypUrmT9/PocccggrV67sue9DH/pQT7vIY489xrp16zjmmGN6QnR/f/7nf87Pf/5zVq5cyQc/+EEefvjhYZ//jDPO4KijjuK0007j05/+dF1eU1Mq2WZ2MXAVcDhwonNuzSDHfQd4PbDVOXfU2K2wduVKdrYQxpAdI4NCtoiIyITUgIpzvZXbRfL5PG9605v48Y9/zJvf/GZg/3aR/v3Vn/nMZ7j22mvZunUrmzZtYtGiRTz99NPccccd3HHHHZx11llce+21nHXWWYM+f7ldZP369Zx11lmcfvrpVfeUD6ZZlezHgYuAu4c57rvAOQ1fTR2UK9mZXPhCdiISpxvX7GWIiIhIyMViMc455xzuvnvwiHjEEUfwyCOP9Fwc+fGPf5y1a9eyd+/enmMSiQSvfe1r+eIXv8jHPvYxbrjhhqqef/ny5cydO5cnnnhiVK8DmhSynXNPOueeruK4u4GdY7CkUUt6QSU7hBvSJKMJsgrZIiIi0mDOOe69916WL18+6DEHHXQQq1at4hOf+ATFol/czGazOOdnlYceeohNmzYB/qSRRx99lKVLl1b1/Fu3buX555+v+vih6MLHOglzu0gqmiBrgHNg4ZqcIiIiIo3R1dXV56LDD3zgA3zgAx8Y8Ngvf/nL/PCHPySfz3P00Ufznve8Z8hzf+tb3+JDH/oQBx10EDNnziSVSvGFL3wB8IPyu971Lrq7/d2qTzzxRK688sohz3fGGWcQjUbJ5/N87nOfY+7cubW81AE1LGSb2e3AvAHu+rhzrj4DCPs+3+XA5QBLliyp9+mH1ROyQ3jhY8JLkDXDFXJYLNHs5YiIiMgEUG7nGM5VV13FVVddNeB93/3udwe8fcqUKXzzm98c8L5zzjmHc86pvtv4hRdeqPrYWjQsZDvnVjfq3IM839XA1QCrVq0a896Gck92dxjbRbwUzoxc924SsdH/ZiciIiISdmoXqZMwV7KTXgqAbHYPiVaFbBEREaldeQpIpYsvvpiPf/zjY/L8r3jFK3paSMp+8IMfsGLFioY8X7NG+F0IfBWYDdxiZmudc39mZguAbznnzg2OuwY4HZhlZu3AJ51z327GmocT5p7sZMzfJSmb3c3UJq9FREREJqaPf/zjYxaoB3L//feP6fM1JWQ7564Hrh/g9k3AuRVfXzqW6xqN3s1owtcukoilAeju3tPklYiIiIhMDNrxsU56R/iFr5KdivvD2DO5vcMcKSIiIiKgkF035XaRTAhDdiLmh+zu7n1NXomIiIjIxKCQXScJL7ztIsl4GwDZnEK2iIiIVO8zn/kMRx55JEcffTQrV67k/vvv5/TTT2fNmjV9juvq6uItb3kLK1as4KijjuLUU0+lo6MDgPb2ds4//3wOPvhgDjzwQK688sqeCxjvuusupk6dysqVKzn88MP5p3/6pzF/jYNRyK6TSMSIexG6Q1jJTiWmAJDNdzR5JSIiIjJR/P73v+fmm2/moYce4tFHH+X2229n8eLFAx77la98hblz5/LYY4/x+OOP8+1vf5tYLIZzjosuuogLLriAZ555hmeeeYZMJsOHP/zhnse+6lWvYu3ataxZs4Yf/vCHPPTQQ2P1EoekkF1HqVg0lD3ZiXLIznU2eSUiIiIyUWzevJlZs2aRSPgb2c2aNYsFCxYMeuzChQt7vj700ENJJBLccccdJJNJ3vGOdwAQjUb58pe/zPe///2eSndZS0sLxx9/PM8++2yDXlFtNCe7jpKxSDjbRRLTAMjmFbJFREQmms//8fM8tfOpup7zsBmH8fcn/v2Qx5x99tn88z//M4cccgirV6/mkksu4bTTThvw2P/7f/8vZ599Ntdddx1nnXUWl112GQcffDDr1q3j+OOP73PslClTWLZs2X5heseOHfzhD3/gH/7hH0b34upEIbuOkrFoOOdkJ/3p2Nl8pskrERERkYmitbWVBx98kN/97nfceeedXHLJJXzuc58b8NiVK1fy3HPP8atf/Yrbb7+dE044gd///vdVPc/vfvc7jj32WCKRCB/5yEc48sgj6/kyRkwhu46SXjjbRZKJIGQXFLJFREQmmuEqzo0UjUY5/fTTOf3001mxYgXf+973Bj22tbWViy66iIsuuohIJMKtt97KMcccw3XXXdfnuL1797JlyxYOPfRQ7r//fl71qldx8803N/ql1Ew92XUU2naR8mY0RYVsERERqc7TTz/NM8880/P12rVrWbp06YDH3nvvvezatQuAXC7HE088wdKlSznrrLPo6uri+9//PgDFYpEPfvCDXHnllaRSqca/iFFQyK6jRCwayjnZXsQj6hyZQnezlyIiIiITREdHB5dddhlHHHEERx99NE888QRXXXUVAK973etYtGgRixYt4uKLL2b9+vWcdtpprFixgmOPPZZVq1bxxje+ETPj+uuv57rrruPggw9m5syZRCKRpm7P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",
      "text/plain": [
       "<Figure size 864x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import pylab\n",
    "\n",
    "pylab.rcParams[\"figure.figsize\"] = (12, 8)\n",
    "for i, optimizer in enumerate(optimizers):\n",
    "    pylab.plot(converge_counts[i], converge_vals[i], label=type(optimizer).__name__)\n",
    "pylab.xlabel(\"Eval count\")\n",
    "pylab.ylabel(\"Energy\")\n",
    "pylab.title(\"Energy convergence for various optimizers\")\n",
    "pylab.legend(loc=\"upper right\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally, since the above problem is still easily tractable classically, you can use [NumPyMinimumEigensolver](https://qiskit.org/documentation/stubs/qiskit.algorithms.minimum_eigensolvers.NumPyMinimumEigensolver.html#numpyminimumeigensolver) to compute a reference value for the solution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Reference value: -1.85728\n"
     ]
    }
   ],
   "source": [
    "from qiskit.algorithms.minimum_eigensolvers import NumPyMinimumEigensolver\n",
    "from qiskit.opflow import PauliSumOp\n",
    "\n",
    "numpy_solver = NumPyMinimumEigensolver()\n",
    "result = numpy_solver.compute_minimum_eigenvalue(operator=PauliSumOp(H2_op))\n",
    "ref_value = result.eigenvalue.real\n",
    "print(f\"Reference value: {ref_value:.5f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "You can now plot the difference between the `VQE` solution and this exact reference value as the algorithm converges towards the minimum energy."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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TIintdtvaPBeRUSk61HSLSIdRSzuuu5S3OUADwJvARhjBuFuZ9YL+EdwwmtXBvgt7nKEJbi7nfw6qBGJiIhfqbxERERERMTPtNItIiIiIuJnSrpFRERERPwsJNgBBEJycrLNyckJdhgiIiIi0sUtWrRon7U25ejt3SLpzsnJYeHChcEOQ0RERES6OGPMtsa2q7xERERERMTPlHSLiIiIiPiZkm4RERERET/rFjXdIiIiIt1dVVUVeXl5lJeXBzuULiEiIoKMjAxCQ0N9Ol5Jt4iIiEg3kJeXR2xsLDk5ORhjgh1Op2atpbCwkLy8PHJzc316jcpLRERERLqB8vJykpKSlHC3A2MMSUlJLfqtgZJuERERkW5CCXf7aelnqaRbRERERAJi9+7dXHbZZfTp04cxY8Zw9tlns379elatWsXJJ5/MgAED6NevH7///e+x1gLw9NNPk5KSwsiRIxkyZAgXX3wxpaWlnHDCCXzwwQf1537llVc488wzAYiJifEaw49+9CPS09Opra3175s9ipJuEREREfE7ay0XXHABU6ZMYdOmTSxatIgHHniAPXv2cO6553LXXXexbt06li1bxtdff82///3v+tdeeumlLF26lFWrVhEWFsbLL7/Mf/7zH3784x9TXl5OSUkJd999N4888kiTMdTW1vLGG2+QmZnJF1984e+3fAQl3SIiIiLidzNnziQ0NJSbbrqpftuIESNYv349xx9/PKeffjoAUVFRPPzww/zxj3885hzV1dWUlpaSkJDA0KFDmT59On/605/43e9+x9VXX02fPn2ajGHWrFkMGTKEm2++mRkzZrTvG2yGupeIiIiIdDO/fWcVq/OL2/Wcg9Pi+M30IV73r1y5kjFjxhyzfdWqVcds79OnDyUlJRQXu2N86aWX+PLLL9m1axf9+/dn+vTpAPzmN79h9OjRhIWFsXDhwmZjnDFjBpdffjnnnXced999N1VVVT63/GsrrXSLiIiISIdWV16ye/duhg0bxl/+8hcAoqOjufTSS7nqqqsIDw9v8hyVlZW8//77nH/++cTFxTFhwgQ++uijQIQPaKVbREREpNtpakXaX4YMGcKrr756zPbBgwcze/bsI7Zt3ryZmJgY4uLijthujGH69On861//4q677gLA4XDgcDS/jvzRRx9RVFTEsGHDACgrKyMyMpJp06a19i21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",
      "text/plain": [
       "<Figure size 864x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "pylab.rcParams[\"figure.figsize\"] = (12, 8)\n",
    "for i, optimizer in enumerate(optimizers):\n",
    "    pylab.plot(\n",
    "        converge_counts[i],\n",
    "        abs(ref_value - converge_vals[i]),\n",
    "        label=type(optimizer).__name__,\n",
    "    )\n",
    "pylab.xlabel(\"Eval count\")\n",
    "pylab.ylabel(\"Energy difference from solution reference value\")\n",
    "pylab.title(\"Energy convergence for various optimizers\")\n",
    "pylab.yscale(\"log\")\n",
    "pylab.legend(loc=\"upper right\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Gradients\n",
    "\n",
    "In Qiskit's variational algorithms, if the provided optimizer uses a gradient-based technique, the default gradient method will be finite differences. However, these classes include an option to pass custom gradients via the `gradient` parameter, which can be any of the provided methods within Qiskit's [gradient](https://qiskit.org/documentation/stubs/qiskit.algorithms.gradients.html) framework, which fully supports the use of primitives. This section shows how to use custom gradients in the VQE workflow.\n",
    "\n",
    "The first step is to initialize both the corresponding primitive and primitive gradient:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "from qiskit.algorithms.gradients import FiniteDiffEstimatorGradient\n",
    "\n",
    "estimator = Estimator()\n",
    "gradient = FiniteDiffEstimatorGradient(estimator, epsilon=0.01)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now, you can inspect an SLSQP run using the [FiniteDiffEstimatorGradient](https://qiskit.org/documentation/stubs/qiskit.algorithms.gradients.FiniteDiffEstimatorGradient.html) from above:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Value using Gradient: -1.85728\n"
     ]
    }
   ],
   "source": [
    "algorithm_globals.random_seed = 50\n",
    "ansatz = TwoLocal(rotation_blocks=\"ry\", entanglement_blocks=\"cz\")\n",
    "\n",
    "optimizer = SLSQP(maxiter=100)\n",
    "\n",
    "counts = []\n",
    "values = []\n",
    "\n",
    "\n",
    "def store_intermediate_result(eval_count, parameters, mean, std):\n",
    "    counts.append(eval_count)\n",
    "    values.append(mean)\n",
    "\n",
    "\n",
    "vqe = VQE(\n",
    "    estimator, ansatz, optimizer, callback=store_intermediate_result, gradient=gradient\n",
    ")\n",
    "\n",
    "result = vqe.compute_minimum_eigenvalue(operator=H2_op)\n",
    "print(f\"Value using Gradient: {result.eigenvalue.real:.5f}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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XAdKNgAAANLWT3/6U5188skaOXKkRo8erXnz5mnSpEmf+E6U/fv36/rrr9cpp5yiESNG6KyzzlJ5ebmk+NSXyy+/XMOGDdPgwYN16623qrKyUpL0yiuvqHPnzho9erSGDx+un/zkJ0nJTckGAABAWpozZ46eeuopLVy4UO+9955efPFF9e/fv95jf/nLX6p37956//33tXjxYt13333Ky8uTu+uqq67SFVdcoeXLl2v58uU6cOCAvvvd7x567tlnn61FixZp/vz5mjFjhhYuXNji7JRsAAAApKVNmzapR48eKigokCT16NFDffv2bfDYfv36HXp8wgknqKCgQLNmzVJhYaG++MUvSpJycnL085//XA888MChke46RUVFOu2007RixYoWZ2d1EQAAADTqJ39dog827knqOU/q20n/9OmTGz3mwgsv1D//8z/r+OOP1/nnn6+rr75aEydOrPfYL33pS7rwwgv12GOP6bzzztONN96oYcOGacmSJTrttNMOO7ZTp04aOHDgJ8r09u3bNXfuXP3oRz9q2ZsTJRsAAABpqkOHDlqwYIFmz56tl19+WVdffbX+/d//vd5jR48erVWrVun555/Xiy++qLFjx2rOnDlNep3Zs2drzJgxisVi+t73vqeTT268/DcFJRsAAACNOtqIcyrl5ORo0qRJmjRpkk455RTdf//9DR7boUMHXXXVVbrqqqsUi8X0zDPPaNSoUXrssccOO27Pnj3avHmzTjjhBM2bN09nn322nnrqqaTmZk42AAAA0tKyZcu0fPnyQ48XLVqkkpKSeo994403tHPnTknSwYMH9cEHH6ikpETnnXee9u/frwceeECSVFNTo+985zu69dZb1a5du5Rlp2QDAAAgLZWXl+vGG2/USSedpJEjR+qDDz7Qj3/8Y0nSpz71KRUXF6u4uFhTpkzRypUrNXHiRJ1yyikaM2aMSktL9dnPflZmppkzZ+qxxx7TsGHD1L17d8ViMf3gBz9IaXZz95S+QAilpaV+5NqJAAAAaLqlS5dq+PDhoWMk3Ztvvqlrr71WM2fO1Kmnntrk59V3PcxsgbuX1nc8c7KTpKqmVtvLD+q4zoWhowAAAKABZ5xxhtauXZvy12G6SJJcc89cfeuRd0LHAAAAQBqgZCfJ+cN7a+6qHVr+8d7QUQAAABAYJTtJPl9arPycmKbPTf2v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",
      "text/plain": [
       "<Figure size 864x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "pylab.rcParams[\"figure.figsize\"] = (12, 8)\n",
    "pylab.plot(counts, values, label=type(optimizer).__name__)\n",
    "pylab.xlabel(\"Eval count\")\n",
    "pylab.ylabel(\"Energy\")\n",
    "pylab.title(\"Energy convergence using Gradient\")\n",
    "pylab.legend(loc=\"upper right\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Initial point\n",
    "\n",
    "By default, the optimization begins at a random point within the bounds defined by the ansatz. The `initial_point` option allows to override this point with a custom list of values that match the number of ansatz parameters.\n",
    "\n",
    "You might wonder... *Why set a custom initial point?* Well, this option can come in handy if you have a guess for a reasonable starting point for the problem, or perhaps know information from a prior experiment.\n",
    "\n",
    "To demonstrate this feature, let's look at the results from our previous VQE run:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{   'aux_operators_evaluated': None,\n",
      "    'cost_function_evals': 9,\n",
      "    'eigenvalue': -1.8572750175655812,\n",
      "    'optimal_circuit': <qiskit.circuit.library.n_local.two_local.TwoLocal object at 0x13ef7dd20>,\n",
      "    'optimal_parameters': {   ParameterVectorElement(θ[0]): 4.296519450348719,\n",
      "                              ParameterVectorElement(θ[3]): 6.092947832767056,\n",
      "                              ParameterVectorElement(θ[1]): 4.426962358395531,\n",
      "                              ParameterVectorElement(θ[7]): 0.36021017470898664,\n",
      "                              ParameterVectorElement(θ[4]): -2.598326651673288,\n",
      "                              ParameterVectorElement(θ[5]): 1.5683250498282322,\n",
      "                              ParameterVectorElement(θ[2]): 0.5470777607659094,\n",
      "                              ParameterVectorElement(θ[6]): -4.717616147449751},\n",
      "    'optimal_point': array([ 4.29651945,  4.42696236,  0.54707776,  6.09294783, -2.59832665,\n",
      "        1.56832505, -4.71761615,  0.36021017]),\n",
      "    'optimal_value': -1.8572750175655812,\n",
      "    'optimizer_evals': None,\n",
      "    'optimizer_result': <qiskit.algorithms.optimizers.optimizer.OptimizerResult object at 0x13010b6a0>,\n",
      "    'optimizer_time': 0.3502693176269531}\n"
     ]
    }
   ],
   "source": [
    "print(result)\n",
    "cost_function_evals = result.cost_function_evals"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now, you can take the `optimal_point` from the above result and use it as the `initial_point` for a follow-up computation.\n",
    "\n",
    "**Note:** `initial_point` is now a keyword-only argument of the `VQE` class (i.e, it must be set following the `keyword=value` syntax)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{   'aux_operators_evaluated': None,\n",
      "    'cost_function_evals': 1,\n",
      "    'eigenvalue': -1.8572750175655812,\n",
      "    'optimal_circuit': <qiskit.circuit.library.n_local.two_local.TwoLocal object at 0x1411b9780>,\n",
      "    'optimal_parameters': {   ParameterVectorElement(θ[0]): 4.296519450348719,\n",
      "                              ParameterVectorElement(θ[1]): 4.426962358395531,\n",
      "                              ParameterVectorElement(θ[4]): -2.598326651673288,\n",
      "                              ParameterVectorElement(θ[5]): 1.5683250498282322,\n",
      "                              ParameterVectorElement(θ[3]): 6.092947832767056,\n",
      "                              ParameterVectorElement(θ[2]): 0.5470777607659094,\n",
      "                              ParameterVectorElement(θ[6]): -4.717616147449751,\n",
      "                              ParameterVectorElement(θ[7]): 0.36021017470898664},\n",
      "    'optimal_point': array([ 4.29651945,  4.42696236,  0.54707776,  6.09294783, -2.59832665,\n",
      "        1.56832505, -4.71761615,  0.36021017]),\n",
      "    'optimal_value': -1.8572750175655812,\n",
      "    'optimizer_evals': None,\n",
      "    'optimizer_result': <qiskit.algorithms.optimizers.optimizer.OptimizerResult object at 0x1411e3f10>,\n",
      "    'optimizer_time': 0.05097508430480957}\n",
      "\n"
     ]
    }
   ],
   "source": [
    "initial_pt = result.optimal_point\n",
    "\n",
    "estimator1 = Estimator()\n",
    "gradient1 = FiniteDiffEstimatorGradient(estimator, epsilon=0.01)\n",
    "ansatz1 = TwoLocal(rotation_blocks=\"ry\", entanglement_blocks=\"cz\")\n",
    "optimizer1 = SLSQP(maxiter=1000)\n",
    "\n",
    "vqe1 = VQE(\n",
    "    estimator1, ansatz1, optimizer1, gradient=gradient1, initial_point=initial_pt\n",
    ")\n",
    "result1 = vqe1.compute_minimum_eigenvalue(operator=H2_op)\n",
    "print(result1)\n",
    "\n",
    "cost_function_evals1 = result1.cost_function_evals\n",
    "print()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cost_function_evals is 1 with initial point versus 9 without it.\n"
     ]
    }
   ],
   "source": [
    "print(\n",
    "    f\"cost_function_evals is {cost_function_evals1} with initial point versus {cost_function_evals} without it.\"\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "By looking at the `cost_function_evals` you can notice how the initial point helped the algorithm converge faster (in just 1 iteration, as we already provided the optimal solution).\n",
    "\n",
    "This can be particularly useful in cases where we have two closely related problems, and the solution to one problem can be used to guess the other's. A good example might be plotting dissociation profiles in chemistry, where we change the inter-atomic distances of a molecule and compute its minimum eigenvalue for each distance. When the distance changes are small, we expect the solution to still be close to the prior one. Thus, a popular technique is to simply use the optimal point from one solution as the starting point for the next step. There also exist more complex techniques, where we can apply extrapolation to compute an initial position based on prior solution(s) rather than directly use the prior solution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<h3>Version Information</h3><table><tr><th>Qiskit Software</th><th>Version</th></tr><tr><td><code>qiskit-terra</code></td><td>0.22.2</td></tr><tr><td><code>qiskit-aer</code></td><td>0.11.1</td></tr><tr><td><code>qiskit-ignis</code></td><td>0.7.1</td></tr><tr><td><code>qiskit-ibmq-provider</code></td><td>0.19.2</td></tr><tr><td><code>qiskit</code></td><td>0.39.2</td></tr><tr><th>System information</th></tr><tr><td>Python version</td><td>3.10.2</td></tr><tr><td>Python compiler</td><td>Clang 13.0.0 (clang-1300.0.29.30)</td></tr><tr><td>Python build</td><td>v3.10.2:a58ebcc701, Jan 13 2022 14:50:16</td></tr><tr><td>OS</td><td>Darwin</td></tr><tr><td>CPUs</td><td>8</td></tr><tr><td>Memory (Gb)</td><td>64.0</td></tr><tr><td colspan='2'>Fri Nov 18 01:08:34 2022 CET</td></tr></table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div style='width: 100%; background-color:#d5d9e0;padding-left: 10px; padding-bottom: 10px; padding-right: 10px; padding-top: 5px'><h3>This code is a part of Qiskit</h3><p>&copy; Copyright IBM 2017, 2022.</p><p>This code is licensed under the Apache License, Version 2.0. You may<br>obtain a copy of this license in the LICENSE.txt file in the root directory<br> of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.<p>Any modifications or derivative works of this code must retain this<br>copyright notice, and modified files need to carry a notice indicating<br>that they have been altered from the originals.</p></div>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import qiskit.tools.jupyter\n",
    "\n",
    "%qiskit_version_table\n",
    "%qiskit_copyright"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
